Software-defined networking (SDN) builds computer networking equipment and software that separates and abstracts elements of these systems (e.g., the control plane and the data plane), to allow network administrators to manage network services more easily through abstraction of lower level functionality into virtual services. This replaces having to manually configure hardware, an important feature for network virtualization. In an SDN architecture, however, there is currently no complete view of the network infrastructure (from physical/optical layers to application layers), and no efficient multi-layer computation.